Object representation of television programs within an interactive television system

ABSTRACT

Television programs are represented by program interface objects (PIOs) within an interactive television system. The PIOs provide a visual indicator for quick identification of the represented television program, attributes providing information concerning the represented television program, and actions that may be performed on or in connection with the represented television program. The PIOs may be sorted, filtered, and/or managed based on user-provided criteria. The PIOs may be communicated between a variety of electronic devices and software applications.

BACKGROUND

[0001] 1. Field of the Invention

[0002] The present invention relates generally to the field ofinteractive television systems. More specifically, the present inventionrelates to an object representation of television programs within aninteractive television system.

[0003] 2. Description of Related Background Art

[0004] Due to the ever-increasing number of channels offered by cabletelevision and satellite networks, an electronic program guide (EPG) hasbecome a common feature of many set top boxes (STBs). Conventional EPGsdisplay schedule information for television programs in a grid-basedformat. One axis of the EPG typically corresponds to channels orstations, while the other axis corresponds to time slots (typically anhour or half hour in length). Rectangular elements formed within thegrid represent specific television programs.

[0005] While EPGs have numerous advantages over conventional printedguides (such as TV Guide®), EPGs are still based on the channel/timeslot model, which is of diminishing importance today. For example, wherea viewer has access to over 500 channels, he or she is not in interestedin the fact that the latest episode of Friends® is being shown onChannel 498. Rather, the viewer would simply like to know when theprogram is being broadcast and allow the entertainment system toautomatically switch to the appropriate channel.

[0006] With the advent of digital video recorders (DVRs), even theconcept of broadcast time is becoming irrelevant. Ideally, a viewerwould like to instruct the entertainment system to record the nextepisode of Friends®, which the viewer can then watch at a convenienttime.

[0007] Forcing a viewer to search through a grid consisting, forexample, of over 500 rows (corresponding to channels) and possiblythousands of columns (corresponding to time slots) is no longeracceptable. Given the wide variety of entertainment options and thelimited amount of time available to individuals for entertainment, anyadvancement increasing the convenience of an entertainment system wouldbe highly advantageous.

[0008] Accordingly, what is needed is a system and method that overcomesthe problems and disadvantages of the prior art. In particular, thesystem and method should provide convenient access to availableprogramming within an entertainment system without requiring the use ofa conventional, grid-based EPG.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Non-exhaustive embodiments of the invention are described withreference to the figures, in which:

[0010]FIG. 1 is a block diagram of a system for delivering televisionprograms and other forms of content;

[0011]FIG. 2 is an illustration of an interactive television system;

[0012]FIG. 3 is a block diagram of hardware components of a set top box(STB);

[0013]FIG. 4 illustrates a conventional electronic program guide (EPG);

[0014]FIG. 5 is a block diagram of a plurality of program interfaceobjects (PIOs) within a memory of an STB;

[0015]FIG. 6 is an expanded block diagram of a PIO;

[0016]FIG. 7 is a block diagram of a system utilizing PIOs to representtelevision programs;

[0017]FIG. 8 is a user interface for interacting with PIOs;

[0018]FIG. 9 is a block diagram of various functional modules forprocessing actions associated with a PIO;

[0019]FIG. 10 is a block diagram illustrating use of a PIO to record anassociated television program;

[0020]FIG. 11 is a user interface illustrating visual indicators of PIOswithin a calendar;

[0021]FIG. 12 is a block diagram illustrating use of a PIO to display apreviously recorded television program;

[0022]FIG. 13 is a block diagram illustrating display of an attribute ofa PIO;

[0023]FIG. 14 is a block diagram of a system for filtering a set of PIOsaccording to user-defined filtering criteria; and

[0024]FIG. 15 is a block diagram of a system for transmitting PIOsbetween interactive television system.

DETAILED DESCRIPTION OF THE INVENTION

[0025] The present invention solves the foregoing problems anddisadvantages by using program interface objects (PIOs) to representtelevision programs within an entertainment system, such as interactivetelevision system.

[0026] In one embodiment, each PIO includes a plurality of actions andattributes. Actions correspond to various operations that may beperformed on or in connection with the television program represented bythe PIO. For example, one action may schedule the recording of therepresented television program, while another action may play back therepresented television program if it was previously recorded. Actionsmay be embodied as program code, in a machine-independent format, suchas Java or Javascript, that may be executed, for example, by an STB foran interactive television system.

[0027] Attributes contain information about the television programrepresented by the PIO. For example, one attribute of a televisionprogram may correspond to the program's name, while another attributemay correspond to the program's broadcast time.

[0028] Attributes may be used to sort, filter, prioritize, or otherwiseorganize a set of PIOs. Moreover, certain attributes may be used in thecontext of certain actions. For example, an action for recording atelevision program may need to access attributes containing the channel,starting time, and running time of the television program.

[0029] PIOs may be implemented using various technologies. For instance,a PIO may be implemented as a JavaBean object. Alternatively, a PIO maybe embodied as a Distributed Component Object Model (DCOM) object. Thepresent invention is not limited to a particular object format.

[0030] In one implementation, each PIO also includes a visual indicator,such as an icon, which is displayed in a graphical user interface (GUI)to facilitate user interaction with the PIO. The GUI may display aplurality of visual indicators corresponding to a set of PIOs. Using aremote control or other selection mechanism, a user may select a PIO byits corresponding visual indicator. Further, a user may select an actionassociated with the PIO, which then may be executed by the STB.

[0031] In one embodiment, an STB or other system may be populated withvisual indicators of a set of PIOs selected from a larger set ofavailable PIOs. The set of available PIOs may be filtered based onuser-defined filtering criteria. For example, a user may filter the setof available PIOs for ones relating to sporting events.

[0032] In certain embodiments, PIOs may be transmitted betweeninteractive television systems, personal computers, mobile devices, andthe like. For example, a PIO may be attached to an e-mail message andsent via the Internet to another system where it may be used to performvarious actions on, or provide information concerning, a representedtelevision program.

[0033] Thus, PIOs are an alternative mechanism for providing access toavailable television programming within an interactive televisionsystem, without the necessity of a conventional EPG. A user need not beconcerned with such details as channel or broadcast time, as wasnecessary in conventional systems. The user need only select an icon fora PIO and select the desired action.

[0034] Reference throughout this specification to “one embodiment” or“an embodiment” means that a particular feature, structure, orcharacteristic described in connection with the embodiment is includedin at least one embodiment of the present invention. Thus, appearancesof the phrases “in one embodiment” or “in an embodiment” in variousplaces throughout this specification are not necessarily all referringto the same embodiment.

[0035] Furthermore, the described features, structures, orcharacteristics may be combined in any suitable manner in one or moreembodiments. In the following description, numerous specific details areprovided, such as examples of programming, user selections, networktransactions, database queries, database structures, etc., to provide athorough understanding of embodiments of the invention. One skilled inthe relevant art will recognize, however, that the invention can bepracticed without one or more of the specific details, or with othermethods, components, materials, etc. In other instances, well-knownstructures, materials, or operations are not shown or described indetail to avoid obscuring aspects of the invention.

[0036] Throughout the following disclosure, the term “coupled” may beused to refer to components that are either directly connected to oneanother or linked by one or more other components. Thus, as used herein,the term “coupled” may be synonymous with “in electrical communicationwith” or simply “in communication with.”

[0037] Referring now to FIG. 1, there is shown a system 100 fordelivering television programs and other forms of content to a pluralityof customers. In one implementation, the system 100 relies on abroadband communication network 101, such as a cable network. However,as described more fully below, other networks are contemplated, oneparticular example of which is a satellite network.

[0038] In one configuration, the system 100 includes a plurality of settop boxes (STBs) 102 located, for instance, at customer homes.Generally, an STB 102 is a consumer electronics device that serves as agateway between a customer's television 104 and the network 101. Inalternative embodiments, an STB 102 may be embodied more generally as apersonal computer, an advanced television 104 including STBfunctionality, or another type of client terminal.

[0039] An STB 102 receives encoded television signals and otherinformation from the network 101 and decodes the same for display on thetelevision 104 or other display device (such as a computer monitor, flatpanel display, or the like). As its name implies, an STB 102 istypically located on top of, or in close proximity to, the television104.

[0040] Each STB 102 may be distinguished from other network componentsby a unique identifier, number, code, or address, examples of whichinclude an Internet Protocol (IP) address or media access control (MAC)address. Thus, video streams and other information may be transmittedfrom the network 101 to a specific STB 102 by specifying thecorresponding address, after which the network 101 routes thetransmission to its destination using conventional techniques.

[0041] A remote control 106 is provided, in one configuration, forconvenient remote operation of the STB 102 and the television 104. Theremote control 106 may use infrared (IR), radio frequency (RF), or otherwireless technologies to transmit control signals to the STB 102 and thetelevision 104. Other remote controls are also contemplated, such as awired or wireless mouse (not shown).

[0042] Additionally, a keyboard 108 (either wireless or wired) isprovided, in one embodiment, to allow the customer to rapidly enter textinformation into the STB 102. Such text information may be used fore-mail or instant messaging, e.g. text-based chat. In variousembodiments, the keyboard 108 may use infrared (IR), radio frequency(RF), or other wireless technologies to transmit keystroke data to theSTB 102.

[0043] Each STB 102 may be coupled to the network 101 via a head-end 110 or other distribution node or broadcast center. In the context of acable network, a head-end 110 is generally a centrally-located facilitywhere television programs are received from a local cable TV satellitedownlink or other source and packaged together for transmission tocustomer homes. In one configuration, a head-end 110 also functions as aCentral Office (CO) in the telecommunications industry, routing videostreams and other data to and from the various STBs 102 servicedthereby. Head-ends 110 may be coupled directly to one another or throughthe network 101. In some cases, head-ends 110 may be connected via aseparate network, one particular example of which is the Internet 112.

[0044] The network 101 is preferably coupled to one or more televisionsources 114, which provide television programming for distribution tothe STBs 102. Preferably, television programs are distributed in anencoded format, such as MPEG (Moving Picture Experts Group). VariousMPEG standards are known, such as MPEG-2, MPEG-4, MPEG-7, and the like.Thus, the term “MPEG,” as used herein, contemplates all MPEG standards.Moreover, other video encoding/compression standards exist other thanMPEG, such as JPEG, JPEG-LS, H.261, and H.263. Accordingly, theinvention should not be construed as being limited only to MPEG.

[0045] Television programming or its equivalent may also be received viathe Internet 112 from one or more streaming video sources 116.Communication over the Internet 112 is accomplished using standardprotocols, such as TCP/IP (Transmission Control Protocol/Internetprotocol) and the like.

[0046] In one implementation, a schedule source 118 is coupled to one orboth of the broadband communication network 101 and the Internet 112.The schedule source 118 preferably maintains schedule information forpast, present, and future television programs. Throughout the followingdisclosure, the term “broadcast” is not limited to electromagnetictransmissions over the air, but contemplates packetized transmissionsusing a network, such as the Internet 112. The schedule source 118 maybe implemented using any conventional relational or hierarchicaldatabase management system (DBMS) and appropriate server software.

[0047] In one implementation, the schedule source 118 receivestelevision program schedule information directly from the televisionsources 114 and/or streaming video sources 116 via the Internet 112and/or the network 101 using, for example, the hypertext transferprotocol (HTTP) or the file transfer protocol (FTP). In suchembodiments, updates of the database may be fully automated. However, inother embodiments, the schedule information may be obtained from disks,CD-ROMS, tapes, manual entry, etc.

[0048] While FIG. 1 illustrates a broadband communication network 101,such as a cable network, the invention is not limited in this respect. Asatellite delivery system may also be used, such as a direct broadcastsatellite (DBS) system. A DBS system may include a small 18-inchsatellite dish (which is an antenna for receiving a satellite broadcastsignal); a digital integrated receiver/decoder (IRD), which separateseach channel and decompresses and translates the digital signal fordisplay by a television; and a remote control.

[0049] Programming for a DBS system may be distributed, for example, bymultiple high-power satellites in geosynchronous orbit, each withmultiple transponders. Compression (e.g., MPEG) may be used to increasethe amount of programming that can be transmitted in the availablebandwidth.

[0050] A digital broadcast center may be used to gather programmingcontent, ensure its digital quality, and transmit the signal up to thesatellites. Programming may come to the broadcast center from contentproviders (TBS®, HBO®, CNN®, ESPN®, etc.) via satellite, fiber opticcable and/or special digital tape. Satellite-delivered programming istypically immediately digitized, encrypted and uplinked to the orbitingsatellites. The satellites retransmit the signal to everyearth-station—or, in other words, every compatible DBS system receiverdish at customers' homes and businesses.

[0051] Some programs may be recorded on digital videotape in thebroadcast center to be broadcast later. Before any recorded programs areviewed by customers, technicians may use post-production equipment toview and analyze each tape to ensure audio and video quality. Tapes maythen be loaded into a robotic tape handling systems, and playback may betriggered by a computerized signal sent from a broadcast automationsystem. Back-up videotape playback equipment may ensure uninterruptedtransmission at all times.

[0052] While the following description makes particular reference tocable head-ends 110, it should be recognized that satellite broadcastcenters may be used for the same purpose. Thus, as used herein, the term“broadcast center” may refer interchangeably to head-ends 110 orsatellite broadcast centers.

[0053] Referring now to FIG. 2, there is shown an interactive television(ITV) system 200 according to an embodiment of the invention. Asdepicted, the system 200 may include an STB 102, a television 104 (orother display device), a remote control 106, and, in certainconfigurations, a keyboard 108.

[0054] The remote control 106 is provided for convenient remoteoperation of the STB 102 and the television 104. In one configuration,the remote control 106 includes a wireless transmitter 202 fortransmitting control signals to a corresponding wireless receiver 204within the STB 102 and/or the television 104. In certain embodiments,the remote control 106 includes a wireless receiver 204 for receivingsignals from a wireless transmitter 202 in the STB 102. Of course, thewireless transmitters 202 of the STB 102 and remote control 106 need notbe identical. The same is true with respect to the wireless receivers204.

[0055] In one embodiment, the wireless transmitters 202 and receivers204 are configured to use radio frequency (RF) signals. In otherembodiments, infrared (IR) or other frequencies along theelectromagnetic spectrum may be used. Operational details regarding thewireless transmitters 202 and receivers 204 are generally well known tothose of skill in the art.

[0056] The remote control 106 preferably includes a number of buttons orother similar controls. For instance, the remote control 106 may includea power button 206, an up arrow button 208, a down arrow button 210, aleft arrow button 212, a right arrow button 214, a “Select” button 216,an “OK” button 218, channel adjustment buttons 220, volume adjustmentbuttons 222, alphanumeric buttons 224, and the like.

[0057] Additionally, the remote control 106, in one configuration, mayinclude a number of buttons specifically-designated for activatingvarious interactive options. These buttons may include, for example, a“Help” button 226, an information button 228, a “Buy” button 230, ane-mail button 232, as well as other buttons 234, 236, 238, 240designated to activate specific interactive options.

[0058] The optional keyboard 108 facilitates rapid composition of textmessages. The keyboard 108 includes a plurality of standard alphanumerickeys 252 arranged in a suitable format. In one configuration, thekeyboard 108 includes a wireless transmitter 202, similar or identicalto the wireless transmitter 202 of the remote control 106. The wirelesstransmitter 202 transmits keystroke data from the keyboard 108 to theSTB 102. Additionally, the keyboard 108 may include one or more of thebuttons illustrated on the remote control 106.

[0059] Referring now to FIG. 3, there is shown a physical block diagramof an STB 102 according to an embodiment of the invention. As notedabove, the STB 102 includes a wireless receiver 204 for receivingcontrol signals sent by the wireless transmitter 202 in the remotecontrol 106.

[0060] The STB 102 also includes, in one implementation, a networkinterface 302 for communicating with the broadband communication network101 via the head-end 110. The interface 302 may include conventionaltuning circuitry for receiving MPEG (Moving Picture Experts Group)packets for a selected television channel. The interface 302 may alsoinclude conventional cable modem circuitry for sending or receivingother types of data. For example, the interface 302 may conform to theDOCSIS (Data Over Cable Service Interface Specification) or DAVIC(Digital Audio-Visual Council) cable modem standards.

[0061] In one configuration, one or more frequency bands (for example,from 5 to 30 MHz) may be reserved for upstream transmission. Digitalmodulation (for example, quadrature amplitude modulation or vestigialsideband modulation) may be used to send digital signals in the upstreamtransmission. Of course, upstream transmission may be accomplisheddifferently for different networks 101. Alternative ways to accomplishupstream transmission include using a back channel transmission, whichis typically sent via an analog telephone line, ISDN, DSL, or othertechniques.

[0062] The STB 102 also preferably includes a CODEC (encoder/decoder)304, which serves to encode audio/video signals into anetwork-compatible data stream for transmission over the network 101.The CODEC 304 also serves to decode a network-compatible data streamreceived from the network 101. The CODEC 304 may be implemented inhardware and/or software. Moreover, the CODEC 304 may use variousalgorithms, such as MPEG or Voice over IP (VolP), for encoding anddecoding.

[0063] The STB 102 further includes a memory device 306, such as arandom access memory (RAM), for storing temporary data. Similarly, aread-only memory (ROM) may be provided for storing more permanent data,such as fixed code and configuration information.

[0064] In one embodiment, an audio/video (AN) controller 308 is providedfor converting digital audio/video signals into analog signals fordisplay/playback on the television 104. The AN controller 308 may beimplemented using one or more physical devices, such as a separategraphics and sound controllers. The A/V controller 308 may includegraphics hardware for performing bit-block transfers (bit-blits) andother graphical operations in order to display a graphical userinterface (GUI) on the television 104.

[0065] In some implementations, the STB 102 may include a storage device310, such as a hard disk drive or the like. The storage device 310 maybe configured to store encoded television broadcasts and retrieve thesame at a later time for display.

[0066] The storage device 310 may also be used in various embodiments tostore viewer preferences, parental lock settings, programmingpreferences, passwords, e-mail messages, and the like. To aide intransferring this data between STBs 102, the storage device 310 mayinterface with removable storage media such as memory cards, memorysticks, CDs, diskettes, and the like. In one implementation, the storagedevice 310 also stores an operating system (OS) for the STB 102, such asWindows CE® or Linux®.

[0067] A CPU 312 controls the operation of the STB 102, including theother components thereof, which are coupled to the CPU 312 via a bus314. The CPU 312 may be embodied as a microprocessor, a microcontroller,a digital signal processor (DSP) or other device known in the art. Asnoted above, the CPU 312 may perform logical and arithmetic operationsbased upon control signals generated by the remote control 106 andtransmitted to the receiver 204.

[0068] Of course, FIG. 3 illustrates only one possible configuration ofan STB 102. Those skilled in the art will recognize that various otherarchitectures and components may be provided within the scope of theinvention. In addition, various standard components are not illustratedin order to avoid obscuring aspects of the invention.

[0069]FIG. 4 illustrates one implementation of a conventional ElectronicProgramming Guide (EPG) 402. As noted above, a typical EPG 402 includesa grid having two axes, one for time slots 404 and the other forchannels or stations 406. Rectangular elements 408 formed within thegrid correspond to specific television programs.

[0070] Generally, the navigation interface for a conventional EPG 402 isawkward and ill-suited to entertainment systems having more than a fewchannels. For example, a satellite STB may receive more than 500channels, requiring the user to scroll through many pages of informationto locate a desired program. Clearly, a conventional EPG 402 is based onthe channel/time slot model, which is of diminishing relevance today.

[0071] For example, where a viewer has access to over 500 channels, heor she is not in interested in the fact that the latest episode ofFriends® is being shown on Channel 498. Rather, the viewer would simplylike to know when the program is being broadcast and allow theentertainment system to automatically switch to the appropriate channel.

[0072] With the advent of digital video recorders (DVRs), even theconcept of broadcast time is becoming irrelevant. Ideally, a viewerwould like instruct the entertainment system to record the next episodeof Friends , which the viewer can then watch at a convenient time.

[0073] In conventional systems, the EPG 402 is generated from a textdata file 410 or the like containing raw schedule information. Forexample, each program element 408 in the EPG 402 may correspond to oneor more lines in the text data file 410. Unfortunately, storing rawschedule information in this manner severely limits the way in which theinformation may be used and communicated. For example, each system thatreceives the text data file 410 must be programmed to parse and displaythe information in a user-friendly format. The file 410, itself, doesnot include code or resources for using or displaying the information.

[0074]FIG. 5 illustrates an alternative to the conventional EPG 402 andin accordance with principles of the present invention. In oneembodiment of the invention, program interface objects (PIOs) 502 areused to represent television programs within an entertainment system,such as an interactive television system 200. In the depictedembodiment, a plurality of PIOs 502 are stored within a memory 306 of anSTB 102. However, various other systems and devices may be used to storePIOs 502, such as personal digital assistants (PDAs), webpads, personalcomputers, and the like.

[0075] As noted above, a PIO 502 may include a plurality of actions 504and attributes 506. In one embodiment, actions 504 correspond to variousoperations that may be performed on or in connection with the televisionprogram represented by the PIO 502. For example, one action 504 mayschedule the recording of the represented television program, whileanother action may display the represented television program if it waspreviously recorded or is currently in progress. Actions 504 may beembodied as program code, in a machine-independent format, that may beexecuted, for example, by an STB 102 for an interactive televisionsystem. Alternatively, actions 504 may include resources that are usedby program code within a STB 102 or the like.

[0076] Attributes 506 contain information about the television programrepresented by the PIO 502. For example, one attribute 506 maycorrespond to a television program's name, while another attribute 506may correspond to the program's broadcast time.

[0077] As described more fully hereafter, attributes 506 may be used tosort, filter, search, prioritize, or otherwise organize a set of PIOs502. Moreover, certain attributes 506 may be used in the context ofcertain actions 504. For example, an action 504 for recording atelevision program may need to access the attributes 506 containing thechannel, starting time, and running time of the television program.

[0078] Each of the attributes 506 in a PIO 502 may include a triplet ofinformation, e.g., the attribute name (Program Title, Program BroadcastTime, Program Broadcast Channel), the attribute's type (searchable text,time, executable code, GIF image, ATVEF triggers and their time markwithin the program, MIME, or the like), and the attribute's value. Insome cases, attributes 506 may include text in multiple languages toallow the PIO 502 to be used in different countries around the world.

[0079] PIOs 502 may be implemented using various technologies. Forinstance, a PIO 502 may be implemented as a JavaBean object.Alternatively, a PIO 502 may be embodied as a Distributed ComponentObject Model (DCOM) object.

[0080] In one implementation, each PIO 502 also includes a visualindicator 506, such as an icon, animated image, or video clip, which isdisplayed in a graphical user interface (GUI) to facilitate userinteraction with the PIO 502. As illustrated in subsequent figures, theGUI may display a plurality of visual indicators 508 corresponding to aset of PIOs 502. Using a remote control 106 or other selectionmechanism, a user may select a PIO 502 by its corresponding visualindicator 508. Further, a user may select an action associated with thePIO 502 to be executed by the STB 102.

[0081] In one embodiment, PIOs 502 include program code in asubstantially machine-independent format. For example, Java Bean or DCOMobjects generally do not require proprietary hardware so long as thehardware executes a Java Virtual Machine (JVM), a DCOM server, or thelike. The PIOs 502 may be created using a variety of programminglanguages, and protocols, such as Java, C++, Smalltalk, and otherprogramming languages that support object-oriented programming.

[0082] Machine independence allows the PIOs 502 to be portable.Information and functionality associated with a particular televisionprogram are encapsulated within the PIOs 502. PIOs may be transferredbetween STBs 102 or other devices, such as personal computers andhand-held devices. PIOs 502 may also be stored in computer-readablemedia, such as CDs, diskettes, memory cards, memory sticks, or the like.

[0083] Of course, PIOs 502 may be configured in various ways, and may bereferred to using different terms, while still being considered withinthe scope of the invention. For example, “actions” may be termed“methods” or “functions”, and “attributes” may be referred to as“variables”, “state”, or “data”.

[0084]FIG. 6 illustrates an expanded view of a PIO 502 includingexamples of attributes 506, actions 504, and visual indicators 508. Forinstance, a typical PIO 502 may include such attributes 506 as title 506a, description 506 b, broadcast channel 506 c, rating 506 d (e.g., TV-G,TV-PG), start time 506 e, end time 506 f, running time 506 g, releaseyear 506 h, classification 506i (e.g., drama, sit-com, sports), actor(s)506 j, producer(s) 506 k, related Internet links 506 l, storage location506 m, country of origin 506 n, language 506 o, etc. Of course, variousother attributes 506 may be provided within the scope of the invention.

[0085] In some cases, attributes 506 may be embodied as references toexternal data in the form of hyperlinks or the like. For example, wherea start time 506 e attribute contains a fixed start time (e.g., 8:00pm), an STB 102 may not be able to account for scheduling changes by atelevision source 114. Thus, in certain embodiments, the start timeattribute 506 e(and other such attributes 506), may include a link to aserver (not shown) that contains the up-to-date start time for thetelevision program. Thus, scheduling changes reflected in the serverwill be automatically recognized by all corresponding PIOs 502. This isparticularly advantageous in the context of a sports game that goes intoovertime. For example, the STB 102 can get updates from the broadcaster,allowing the STB 102 to extend the duration of the recording of theprogram.

[0086] In other embodiments, one or more attributes 506 of a PIO 502 maybe dynamically updated based on (possibly real-time) updates from abroadcaster using a transmission method that can be specified in the PIO502. The transmission methods can include, for instance, HTTP, FTP,e-mail, or an ATVEF trigger.

[0087] One particularly advantageous attribute 506 is the is the relatedInternet links attribute 506 l. The related Internet links attribute 506l may link a PIO 502 to an associated web site (e.g., a sponsored link),a chat room (e.g., real time chat about the television program beingwatched), or an e-commerce site.

[0088] In certain embodiments, one attribute 506 may comprise a link(not shown) to one or more other PIOs 502. This facilitates PIO linking,which is advantageous, for example, in the context of related PIOs 502,e.g., a miniseries.

[0089] A typical PIO 502 may also include various actions 504, such asan action 504 a for recording the associated television program. Asdescribed more fully below, the recording action 504 a may operate inconjunction with the CODEC 304 and storage device 310 of FIG. 3 todigitally record the television program when it is broadcast by atelevision source 114 or streaming video source 116. In addition, therecording action 504 may access the channel, start time, end time,and/or running time attributes 506 c, 506 e-g in order to facilitate therecording. The instantiation of a PIO 502 as stored in the STB memory306 may contain additional, or updated data and may not be exactly thesame as the originally broadcast PIO 502. The recording action 504 a isan example of this dynamic update of the stored copy of the PIO 502.

[0090] An action 504 b may also be provided for displaying therepresented television program on a television 104. If, for instance,the television program is currently being broadcast, the display action504 b may be configured to tune the STB 102 to the correct channel. If,however, the television program was previously broadcast and recorded(e.g., by the record action 504 a), the display action 504 b mayretrieve and display the stored television program. In one embodiment,the display action 504 accesses the storage location 506 m attribute tolocate a stored television program.

[0091] Various other actions 504 may include an action 504 b forreminding a user that a particular program is scheduled to be broadcastand/or reminding the user that the program has been recorded.Additionally, an action 504 d may be provided for displaying one or moreattributes 506 of the PIO 502 on the television 104 or other displaydevice. Moreover, an action 504 e may be included to allow a user torate and/or comment on the represented television program. An action 504f may also be provided to send a copy of the PIO 502 to another systemor device.

[0092] In some cases, actions 504 may be propagated between linked PIOs502. For example, a user may selection the record action 502 a of a PIO502 corresponding to a program in a mini-series. If the PIOs 502 of themini-series are linked (e.g., by an appropriate attribute 506 or thelike), then the same action 506 a may be executed by the linked PIOs 502as well.

[0093] Of course, numerous other attributes 506 and actions 504 may beprovided within the scope of the invention. Moreover, theobject-oriented nature of a PIO 502 allows for additional actions 504and attributes 506 to be dynamically added as necessary.

[0094] The PIO 502 may also include a visual indicator 508, such as agraphical icon, to facilitate interaction with the PIO 502 in thecontext of a GUI. A visual indicator 508 may alternatively, or inaddition, include a textual description of the television program, suchas the program's name.

[0095] A graphical visual indicator 508 is advantageous in that itovercomes language and illiteracy barriers presented by conventionalEPGs 402. For example, a child user may be unable to read a textdescription. However, a Big Bird® icon would be clearly recognizable asrepresenting Sesame Street®.

[0096] In certain embodiments, a PIO 502 may include an audibleindicator 502. The audible indicator 502 may include, for example, adescription of the PIO 502 (similar to the description attribute 506 b),an advertisement, user instructions, or the like. The audible indicator502 may be embodied as an audio clip or sample, which is played back bythe STB 102 when the PIO 502 is selected or when the correspondingvisual indicator 506 is displayed. The inclusion of an audible indicator502 is advantageous for people who are visually disabled or those whohave difficulty reading.

[0097] Referring now to FIG. 7, there is shown a block diagram oflogical components of a system 700 that utilizes PIOs 502 to representtelevision programs. The depicted logical components may be implementedusing one or more of the physical components shown in FIG. 3.Additionally, or in the alternative, various logical components may beimplemented as software modules stored in the memory 306 and/or storagedevice 310 and executed by the CPU 312.

[0098] In one configuration, a plurality of PIOs 502 a-f may be storedwithin a memory, such as a memory 306 of an STB 102. A display component702 displays each visual indicator 508 of a PIO 502 on a television 104or other display device. The visual indicators 508 may be displayed inconnection with a GUI 704.

[0099] In certain embodiments, the displayed visual indicators 508 a-fmay be grouped in the GUI 704 within logical folders or the like,allowing user to organize the visual indicators 508 a-f in any desiredmanner. For example, a user may group visual indicators 508 a-f withinsuch folders as “My sit-coms”, “My TV dramas”, “My sports”, etc., tofacilitate easy access thereto.

[0100] As described more fully below, a selection component 706 allows auser to select one or more PIOs 502 by selecting corresponding visualindicators 508. Thereafter, the selection component 706 allows a user tochoose one of the actions associated with the selected PIO 502. Theselection of an action 504 may be accomplished via a context-sensitivemenu or other suitable mechanism, as illustrated below.

[0101] As an example, suppose a PIO 502 a includes a number ofattributes 506, such as a title attribute 506 a (e.g., “Dallas v.Denver”), a channel attribute 506c (“4 KTVX”), a start time attribute506 e(e.g., “Monday, 7:00 pm”), and an end time attribute 506 f(“Monday,10:00 pm”). Further, suppose that the PIO 502 a includes a record action504 a, a display action 504 b, and an iconic visual indicator 508 a.

[0102]FIG. 8 illustrates an exemplary GUI 704 including visualindicators 508 a-f corresponding to the PIOs 502 a-f of FIG. 7. In theillustrated embodiment, a user selects visual indicator 508 a using, forexample, the arrow buttons 208-214 of the remote control 106. A pointer,selection outline, or other mechanism may used to pick the desiredindicator 508 a.

[0103] In response to the selection, a context-sensitive menu 802 may bedisplayed listing the available actions 504 a-b for the PIO 502 a. Wherea large number of actions 504 are available, the menu 802 may displayonly the most popular or common actions 504, while providing a mechanismto display additional actions if desired.

[0104] In some cases, selecting an action 504 may result in the displayof various options 804 in the form of a sub-menu 806. The options 804may correspond to various parameters, features, or settings used by thecorresponding action 504. For example, the record action 504 a mayinclude two options 804 a-b, corresponding to record “Weekly” and record“Next Time Broadcast.” If the “Next Time Broadcast” option 804 b isselected, for instance, the record action 504 a may record the nextepisode of a television program, as opposed to recurring weekly episodes(in the case of TV drama or sit-com).

[0105] Of course, different selection mechanisms may be provided otherthan the context-sensitive menu 802 and sub-menu 806. For example, theselection component 706 may display a plurality of user-selectable icons(not shown) corresponding to different actions 504 and options 804.

[0106] Because each PIO 502 may be tailored to a particular televisionprogram, the actions 504 available in the context-sensitive menu 802 mayvary from program to program. Similarly, options 804 available in asub-menu 806 for a particular action 504 may vary from one program tothe next.

[0107] Referring to FIG. 9, the STB 102 may further include an actioncomponent 902 that executes a user-selected action 504. The actioncomponent 902 may be implemented, in various embodiments, in the contextof a Java Virtual Machine (JVM), a DCOM server, or the like. Of course,other implementations are possible.

[0108] To execute the selected action 504, the action component 902 mayinteract with various other logical components of the STB 102, such as arecording component 904, a scheduling component 906, and a playbackcomponent 908, as described below.

[0109] Briefly, the recording component 904 is configured to record atelevision program using, for example, the storage device 310. Thescheduling component 906 schedules recording tasks to record televisionprograms to be broadcast in the future. In addition, the schedulingcomponent 906 interacts with the recording component 904 to record adesired television program at the correct time and date in accordancewith a scheduled recording task. The playback component 908 isconfigured, in one embodiment, to display a television program storedwithin the storage device 310 or the like. Each of the above-describedcomponents may be implemented in the context of a digital videorecording (DVR) system, one example of which is the TiVo® DVR, availablefrom TiVo, Inc.

[0110] Suppose, as shown in FIG. 8, that a user selects the recordaction 504 a with the “Next Time Broadcast” option 804 b. In response tosuch selection, and as illustrated in FIG. 10, the starting time 506 e,ending time 506 f, and channel 506 c attributes may be provided to thescheduling component 906. Thereafter, the scheduling component 906schedules a recording event to record the television program. At thespecified time and date, the scheduling component 906 instructs therecording component 904 to record 904 the television program on thespecified channel.

[0111] The recorded television program may be stored within the storagedevice 310 of the STB 102 or another suitable location. After theprogram is recorded, the stored location of the television program maybe placed in the storage location attribute 506 m of the PIO 502 a toallow subsequent access thereto.

[0112]FIG. 11 illustrates use of PIOs 502 in the context of a personalinformation manager (PIM) 1100, such as an adapted version of Microsoft®Outlook®. In one embodiment, when a television program represented by aPIO 502 is scheduled for recording, the scheduling component 906interacts with the PIM 1100 to display a visual indicator 508 of the PIO502 in a calendar, to-do list, or the like, provided by the PIM 1100.

[0113] Moreover, in one implementation, the scheduling component 906inserts reminders 1102 into the PIM 1100 to notify users concerningscheduled recordings. Similarly, reminders 1102 of upcoming televisionprograms may be noted on the calendar a day or two prior to thebroadcast date. In this manner, a user may quickly see which televisionprograms he or she plans to watch.

[0114] In certain embodiments, PIOs 502 may be dragged and dropped ontothe PIM 1100 using object linking and embedding (OLE), DCOM, ActiveX, orthe like. A result of dropping a PIO 502 on the PIM 1100 may be toschedule the program represented by the PIO 502 for recording.

[0115] While FIG. 11 illustrates use of PIOs 502 in a PIM 1100, theobject-oriented nature of the PIOs 502 allows them to interface with avariety of software applications. Moreover, PIOs may be used with avariety of electronic devices, including personal computers, cellphones, personal digital assistants (PDAs), pagers, telephones, and thelike. The portable nature of the PIOs 502 and flexibility availableprovide for a variety of uses for the PIOs 502. For example, an action504 may exist to call a user and deliver a voice synthesized reminder1102 one hour prior to a broadcast of the associated television program.The possibilities for actions 504 are endless.

[0116] As shown in FIG. 12, once a television program is recorded, itmay be retrieved and displayed in response to a user selection of thedisplay action 504 b shown in FIG. 8. In one embodiment, the location ofthe recorded television program is retrieved from the stored locationattribute 506 m and provided to the playback component 908. Thereafter,the playback component 908 retrieves the recorded program and plays backthe same on the television 104.

[0117] As shown in FIG. 13, an action 504 d may be provided fordisplaying one or more of the attributes of a PIO 502. The action 504 dand the desired attribute(s) 506 may be selected using thecontext-sensitive menu 802 and sub-menu 806 illustrated in FIG. 8,although the invention is not limited in this respect.

[0118] Suppose, for example, that a user selects the display attributeaction 504 d with the description attribute 506 b. In one embodiment,the description attribute 506 b is retrieved from the PIO 502 andprovided to the display component 702 or the like for display. Invarious embodiments, a selected attribute 506 may include text, audio,video, or the like. Thus, the various modules not shown but well knownin the art may be required for displaying or playing back the selectedattribute 506.

[0119]FIG. 14 illustrates an embodiment of a system 1400 providing a setof PIOs 502 to an interactive television system 200. PIOs 502 may beavailable from a variety of sources including, for example, a head-end110, a television source 114 (such as a television network), a schedulesource 118, a streaming video source 116, an PIO server (not shown), andthe like. The PIOs 502 may be transmitted from these sources, across abroadband network 101, the Internet 112, or other network connection,including a satellite link, to an STB 102.

[0120] In the depicted embodiment, a population component 914 isprovided for populating an STB 102 or the like with a user-selected setof PIOs 502. The population component 914 may be implemented within theSTB 102 (as shown), within a head-end 110, or the like.

[0121] In one embodiment, the population component 914 provides a filtercomponent 1402 for reducing an initial set 1404 of available PIOs 502 toa user-specified set 1405 that may be stored within the STB 102. Incertain embodiments, the initial set 1404 may include hundreds orthousands of PIOs 502 associated with corresponding television programs.Thus, reducing the initial set 1404 to a more manageable set 1405 isgenerally desirable.

[0122] The filter component 1402 may include or be associated withfiltering criteria 1406. The filtering criteria 1406 may comprise a setof user-defined rules for filtering the initial set 1404. For example, auser may specify that the population component 914 only retrieve PIOs502 having a start time 506 eof 7:00 pm and a end time 506 fof 10:00 pm(e.g., primetime). Alternatively, a user may specify that the populationcomponent 914 only retrieve PIOs 502 corresponding to sporting events.Of course, those skilled in the art recognize that various otherfiltering criteria 1406 may be used, including logical operators (e.g.,AND, OR, NOT) and the like.

[0123] The filtering component 1402 may also be used within an STB 102to divide the initial set 1404 based on different criteria, such as thegenres of the respective television programs, in order to transmit PIOs502 or information from PIOs 502 to auxiliary devices such as pagers,PDAs, personal computers, or telephone handsets that can receiveinformation and display it for the user.

[0124] As illustrated in FIG. 14, suppose PIOs 502 a-d belong to theinitial set 1404. The population component 914 applies the filteringcriteria 1406 (e.g., primetime) to each PIO 502 a-d. The PIOs 502 thatmatch the filtering criteria 1406 (e.g., PIO 502 a-b) are retrieved fromthe source and stored in the STB 102. As previously described, thedisplay component 702 may then display the corresponding visualindicators 508 a-b on the television 104.

[0125] The filtering component 1402 may also be used internally within aSTB 102 to organize the selected set 1405. For example, a user mayfurther divide the set 1405 based on different criteria 1406, such asthe genres of the respective television programs. This allows the userto organize the PIOs 502 using logical folders or the like.

[0126] As shown in FIG. 15, PIOs 502 may be transmitted from one systemto another. For example, a PIO 502 a within a first STB 102 a may betransmitted via the network 101 to second STB 102 b. Of course, othernetworks may be used, such as telephone and satellite networks (notshown). Additionally, PIOs 502 may be communicated between a variety ofelectronic devices, including personal computers, PDAs, telephones, cellphones, pagers, and the like.

[0127] In one embodiment, a communication component 1502 is providedwithin each STB 102 a-b or other systems or devices. The communicationcomponent 1502 may be embodied by various standard communication tools,such as Web browsers, e-mail clients, or the like. Moreover, variouscommunication protocols may be used, such as HTTP, FTP, SMTP, IMAP,which are well known to those skilled in the art.

[0128] In the illustrated embodiment, a user of the source STB 102 a mayselect the visual indicator 508 a of PIO 502 a. Thereafter, the user mayselect, for example, the send action 504 f from the context-sensitivemenu 802. The send action 504 f may include code for interacting withthe communication component 1502 to transmit a copy of the PIO 502 a tothe destination STB 102 b.

[0129] Alternatively, a PIO 502 may be communicated through the use ofportable computer-readable media, such as CD-ROMs, diskettes, memorycards, memory sticks, and the like. In one embodiment, the PIO 502, or acopy thereof, is placed on a computer-readable medium by a sourcesystem. Thereafter, the computer-readable medium is provided to thedestination system, where it is read into memory 306 and/or a storagedevice 310.

[0130] Based on the foregoing, the present invention offers a number ofadvantages not available in conventional approaches. The presentinvention allows users to quickly and efficiently access televisionprogramming within an entertainment system without the need for aconventional, grid-based EPG 402. PIOs 502 may be organized according touser-specified criteria and transmitted between various types ofentertainment systems and devices. Television programs may be recordedand played back while shielding a user from the details of the program'sbroadcast time and channel.

[0131] While specific embodiments and applications of the presentinvention have been illustrated and described, it is to be understoodthat the invention is not limited to the precise configuration andcomponents disclosed herein. Various modifications, changes, andvariations apparent to those skilled in the art may be made in thearrangement, operation, and details of the methods and systems of thepresent invention disclosed herein without departing from the spirit andscope of the invention.

What is claimed is:
 1. A program interface object (PIO) for representinga television program within an interactive television system, theprogram interface object comprising: a plurality of attributes carryinginformation about the television program; a plurality of user-selectableactions performable by the interactive television system in connectionwith the television program; and a visual indicator displayable in agraphical user interface to facilitate user interaction with the programinterface object.
 2. The PIO of claim 1, wherein the visual indicatorcomprises one of a graphical icon, an animated image, a video clip, anda text description.
 3. The PIO of claim 1, further comprising: anaudible indicator capable of being played back by the interactivetelevision system.
 4. The PIO of claim 1, wherein at least one of theuser-selectable actions comprises program code executable by theinteractive television system in response to a user selection.
 5. ThePIO of claim 4, wherein the program code is substantiallymachine-independent.
 6. The PIO of claim 5, wherein the PIO comprisesone of a JavaBean object and a Distributed Component Object Model (DCOM)object.
 7. The PIO of claim 1, wherein at least one attribute comprisesa title of the television program.
 8. The PIO of claim 1, wherein atleast one attribute comprises a starting time of the television program.9. The PIO of claim 1, wherein at least one attribute comprises arunning time of the television program.
 10. The PIO of claim 1, whereinat least one attribute comprises a description of the televisionprogram.
 11. The PIO of claim 1, wherein at least one attributecomprises an indication of a channel on which the television program isbroadcast.
 12. The PIO of claim 1, wherein at least one attributecomprises a storage location of the television program.
 13. The PIO ofclaim 1, wherein at least one attribute comprises an alternativelanguage version of another attribute.
 14. The PIO of claim 1, whereinat least one user-selectable action is configured to display at leastone attribute of the PIO using the interactive television system. 15.The PIO of claim 1, wherein at least one user-selectable action isconfigured to record the television program within the interactivetelevision system.
 16. The PIO of claim 1, wherein at least oneuser-selectable action is configured to display the television programusing the interactive television system.
 17. A method for managingtelevision programs received by an interactive television system, themethod comprising: providing, for each television program, a programinterface object (PIO) comprising a plurality of attributes carryinginformation about the television program, a plurality of user-selectableactions performable by the interactive television system in connectionwith the television program, and a visual indicator displayable in agraphical user interface to facilitate user interaction with the PIO;displaying one or more visual indicators corresponding to PIOs;receiving a user selection of a visual indicator corresponding to a PIO;receiving a user selection of an action associated with the selectedPIO; and executing the selected action within the interactive televisionsystem.
 18. The method of claim 17, further comprising: displaying, inresponse to a user selection of a visual indicator, a list ofuser-selectable actions associated with the selected PIO.
 19. The methodof claim 18, wherein the list is displayed in a context-sensitive menuassociated with the visual indicator of the selected PIO.
 20. The methodof claim 17, wherein displaying one or more visual indicators comprises:filtering an initial set of PIOs according to user-specified filteringcriteria; and displaying visual indicators of the PIOs satisfying thefiltering criteria.
 21. The method of claim 17, further comprising:receiving at least one PIO from a remote system.
 22. The method of claim17, further comprising: transmitting at least one PIO to a remote systemin response to a user command.
 23. The method of claim 21, furthercomprising: modifying at least one attribute of a PIO in response to aschedule change.
 24. The method of claim 17, wherein at least one visualindicator comprises one of a graphical icon, an animated image, a videoclip, and a text description.
 25. The method of claim 17, wherein atleast one PIO includes an audible indicator, the method furthercomprising: playing back the audible indicator using the interactivetelevision system.
 26. The method of claim 17, wherein at least oneuser-selectable action comprises program code executable by theinteractive television system in response to a user selection.
 27. Themethod of claim 26, wherein the program code is substantiallymachine-independent.
 28. The method of claim 27, wherein at least onePIO comprises one of a JavaBean object and a Distributed ComponentObject Model (DCOM) object.
 29. The method of claim 17, wherein at leastone attribute comprises a title of a television program.
 30. The methodof claim 17, wherein at least one attribute comprises a starting time ofa television program.
 31. The method of claim 17, wherein at least oneattribute comprises a running time of a television program.
 32. Themethod of claim 17, wherein at least one attribute comprises adescription of a television program.
 33. The method of claim 17, whereinat least one attribute comprises an indication of a channel on which atelevision program is broadcast.
 34. The method of claim 17, wherein atleast one attribute comprises a storage location of a televisionprogram.
 35. The method of claim 17, wherein at least one attributecomprises an alternative language version of another attribute.
 36. Themethod of claim 17, wherein at least one user-selectable action isconfigured to display an attribute of the selected PIO using theinteractive television system.
 37. The method of claim 17, wherein atleast one user-selectable action is configured to record a televisionprogram corresponding to the selected PIO within the interactivetelevision system.
 38. The method of claim 37, further comprising:recording the television program at a time indicated by an attribute ofthe selected PIO.
 39. The method of claim 17, wherein at least oneuser-selectable action is configured to display a television programcorresponding to the selected PIO using the interactive televisionsystem.
 40. The method of claim 39, further comprising: locating astored recording of the television program using an attribute of theselected PIO; displaying the stored recording of the television program.41. A system for managing television programs received by an interactivetelevision system, the system comprising: a computer readable mediumcomprising, for each television program, a program interface object(PIO) comprising a plurality of attributes carrying information aboutthe television program, a plurality of user-selectable actionsperformable by the interactive television system in connection with thetelevision program, and a visual indicator displayable in a graphicaluser interface to facilitate user interaction with the PIO; a displaycomponent configured to display one or more visual indicatorscorresponding to PIOs; a selection component configured to receive auser selection of a visual indicator corresponding to a PIO and a userselection of an action associated with the selected PIO; and an actioncomponent configured to execute the selected action within theinteractive television system.
 42. The system of claim 41, wherein theselection component is further configured to display, in response to auser selection of a visual indicator, a list of user-selectable actionsassociated with the selected PIO.
 43. The system of claim 42, whereinthe list is displayed in a context-sensitive menu associated with thevisual indicator of the selected PIO.
 44. The system of claim 41,further comprising a population component configured to filter aninitial set of PIOs according to user-specified filtering criteria,wherein the display component is further configured to display thevisual indicators of the PIOs satisfying the filtering criteria.
 45. Thesystem of claim 41, further comprising a communication componentconfigured to receive at least one PIO from a remote system.
 46. Thesystem of claim 45, wherein the at least one PIO is received from theremote system via e-mail.
 47. The system of claim 41, further comprisinga communication component configured to transmit at least one PIO to aremote system in response to a user command.
 48. The system of claim 41,wherein at least one visual indicator comprises one of a graphical icon,an animated image, a video clip, and a text description.
 49. The systemof claim 41, wherein at least one PIO includes an audible indicator, thesystem further comprising: a playback component configured to play backthe audible indicator.
 50. The system of claim 41, wherein at least oneuser-selectable action comprises program code executable by theinteractive television system in response to a user selection.
 51. Thesystem of claim 50, wherein the program code is substantiallymachine-independent.
 52. The system of claim 51, wherein at least onePIO comprises one of a JavaBean object and a Distributed ComponentObject Model (DCOM) object.
 53. The system of claim 41, wherein at leastone attribute comprises a title of a television program.
 54. The systemof claim 41, wherein at least one attribute comprises a starting time ofa television program.
 55. The system of claim 41, wherein at least oneattribute comprises a running time of a television program.
 56. Thesystem of claim 41, wherein at least one attribute comprises adescription of a television program.
 57. The system of claim 41, whereinat least one attribute comprises an indication of a channel on which atelevision program is broadcast.
 58. The system of claim 41, wherein atleast one attribute comprises a storage location of a televisionprogram.
 59. The system of claim 41, wherein at least one attributecomprises an alternative language version of another attribute.
 60. Thesystem of claim 41, wherein the display component is further configuredto display an attribute of the selected PIO using the interactivetelevision system.
 61. The system of claim 41, further comprising: arecording component configured to record a television programcorresponding to the selected PIO using the interactive televisionsystem.
 62. The system of claim 61, wherein the recording component isfurther configured to record the television program at a time indicatedby an attribute of the selected PIO.
 63. The system of claim 41, whereinthe display component is further configured to display a televisionprogram corresponding to the selected PIO using the interactivetelevision system.
 64. The system of claim 63, further comprising: aplayback component configured to locate a stored recording of thetelevision program using an attribute of the selected PIO, and displaythe stored recording of the television program.
 65. A method formanaging television programs received by an interactive televisionsystem, the method comprising: providing, for each television program, aprogram interface object (PIO) comprising a plurality of attributescarrying information about the television program, a plurality ofuser-selectable actions performable by the interactive television systemin connection with the television program, and an icon displayable in agraphical user interface to facilitate user interaction with the PIO;filtering an initial set of PIOs according to user-specified filteringcriteria; displaying the icons corresponding to the PIOs satisfying thefiltering criteria; receiving a user selection of an icon correspondingto a PIO; displaying a list of user-selectable actions associated withthe selected PIO; receiving a user selection of an action associatedwith the selected PIO from the list; and executing the selected actionwithin the interactive television system.
 65. A system for managingtelevision programs received by an interactive television system, themethod comprising: a computer-readable medium storing, for eachtelevision program, a program interface object (PIO) comprising aplurality of attributes carrying information about the televisionprogram, a plurality of user-selectable actions performable by theinteractive television system in connection with the television program,and an icon displayable in a graphical user interface to facilitate userinteraction with the PIO; a filtering component configured to filter aninitial set of PIOs according to user-specified filtering criteria; anicon display component configured to display the icons corresponding tothe PIOs satisfying the filtering criteria; an icon selection componentconfigured to receive a user selection of an icon corresponding to aPIO; an action display component configured to display a list ofuser-selectable actions associated with the selected PIO; an actionselection component configured to receive a user selection of an actionassociated with the selected PIO from the list; and an action executioncomponent configured to execute the selected action within theinteractive television system.
 66. A system for managing televisionprograms received by an interactive television system, the systemcomprising: means for storing, for each television program, a programinterface object (PIO) comprising a plurality of attributes carryinginformation about the television program, a plurality of user-selectableactions performable by the interactive television system in connectionwith the television program, and a visual indicator displayable in agraphical user interface to facilitate user interaction with the PIO;means for displaying one or more visual indicators corresponding toPIOs; means for receiving a user selection of a visual indicatorcorresponding to a PIO and a user selection of an action associated withthe selected PIO; and means for executing the selected action within theinteractive television system.